package com.indexingsystem.boss.admin.mapper;

import com.indexingsystem.boss.Vo.ExportTableWithOrderResVo;
import com.indexingsystem.boss.Vo.ExportTableWordsReqVo;
import com.indexingsystem.boss.Vo.ExportWordsWithOrderResVo;
import com.indexingsystem.boss.Vo.IdxThemeWordsPageReqVo;
import com.indexingsystem.boss.entity.IdxThemeTable;
import com.indexingsystem.boss.entity.IdxThemeWords;
import com.indexingsystem.boss.entity.IdxThemeWordsWithBLOBs;
import io.swagger.models.auth.In;

import java.util.List;

public interface IdxThemeWordsMapper {
    int deleteByPrimaryKey(Integer themeWordsId);

    int insert(IdxThemeWordsWithBLOBs record);

    int insertSelective(IdxThemeWordsWithBLOBs record);

    IdxThemeWordsWithBLOBs selectByPrimaryKey(Integer themeWordsId);

    int updateByPrimaryKeySelective(IdxThemeWordsWithBLOBs record);

    int updateByPrimaryKeyWithBLOBs(IdxThemeWordsWithBLOBs record);

    int updateByPrimaryKey(IdxThemeWords record);

    /**
     * 根据父类id查询所有信息
     *
     * @param parentId
     * @return
     */
    List<IdxThemeWordsWithBLOBs> selectByParentId(List<Integer> parentId);

    /**
     * 根据主题词id查询所有下级主题词列表
     *
     * @param themeWordsId
     * @return
     */
    List<IdxThemeWordsWithBLOBs> getThemeWordsById(Integer themeWordsId);

    /**
     * 批量删除主题词
     *
     * @param list
     * @return
     */
    Integer deleteByIdBatch(List<String> list);

    List<IdxThemeWordsWithBLOBs> selectAllList();


    /**
     * 根据id查询主题词表
     *
     * @param themeTableId
     * @return
     */
    List<IdxThemeWordsWithBLOBs> selectIdxThemeWordById(String themeTableId);

    /**
     * 分页查询主题词表
     *
     * @param idxThemeWordsPageReqVo
     * @return
     */
    List<IdxThemeWordsWithBLOBs> selectIdxThemeWords(IdxThemeWordsPageReqVo idxThemeWordsPageReqVo);

    /**
     * 分页查询主题词表数量
     *
     * @param idxThemeWordsPageReqVo
     * @return
     */
    Integer selectIdxThemeWordsCount(IdxThemeWordsPageReqVo idxThemeWordsPageReqVo);

    /**
     * 根据主题词表id,查询主题词列表
     *
     * @param themeTableId
     * @return
     */
    List<IdxThemeWordsWithBLOBs> getThemeWordByTablesId(Integer themeTableId);

    /**
     * 批量启用和禁用主题词
     *
     * @param idxThemeWordsList
     * @return
     */
    Integer updateThemeWordsStatusByIdBatch(List<IdxThemeWords> idxThemeWordsList);

    /**
     * 批量启用和禁用主题词表
     *
     * @param idxThemeTableList
     * @return
     */
    Integer updateThemeTableStatusByIdBatch(List<IdxThemeTable> idxThemeTableList);

    /**
      * @Discription 获取需要导出的顶级（或者指定）主题词表和顶级主题词对象集合
      * @Author mineary
      * @Date 13:53 2018/10/24
      * @Param reqVo
      * @Return java.util.List<com.indexingsystem.boss.Vo.ExportTableWithOrderResVo>
      */
    List<ExportTableWithOrderResVo> getExportTableWordsList(ExportTableWordsReqVo reqVo);

    /**
      * @Discription 获取主题词的所有子主题词
      * @Author mineary
      * @Date 13:54 2018/10/24
      * @Param [id]
      * @Return java.lang.String
      */
    String getArrchildsByWordsId(Integer id);

    /**
      * @Discription 获取所有主题词表的子主题词表
      * @Author mineary
      * @Date 13:55 2018/10/24
      * @Param [id]
      * @Return java.lang.String
      */
    String getArrchildsByTableId(Integer id);

    /**
      * @Discription 批量获取themeWords
      * @Author mineary
      * @Date 20:19 2018/10/24
      * @Param [ids]
      * @Return java.util.List<com.indexingsystem.boss.Vo.ExportWordsWithOrderResVo>
      */
    List<ExportWordsWithOrderResVo> getWordsList(Integer id);

    /**
      * @Discription 批量获取themeTable
      * @Author mineary
      * @Date 20:20 2018/10/24
      * @Param [ids]
      * @Return java.util.List<com.indexingsystem.boss.Vo.ExportTableWithOrderResVo>
      */
    List<ExportTableWithOrderResVo> getTableList(Integer id);

    /**
      * @Discription 获取主题词数量
      * @Author mineary
      * @Date 15:36 2018/10/26
      * @Param [ids]
      * @Return java.lang.Integer
      */
    Integer selectCountByIds(List<String> ids);


}